<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        table {
            width: 500px;
            margin: 100px auto;
            border-collapse: collapse;/* 为表格设置合并边框模型 */
            text-align: center;
        }
        
        td,
        th {
            border: 1px solid #333;
        }
        
        thead tr {
            height: 40px;
            background-color: #ccc;
        }
    </style>
</head>
<body>
    <table cellspacing="0">
        <thead>
            <tr>
                <th>姓名</th>
                <th>科目</th>
                <th>成绩</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>

        </tbody>
    </table>
    <script>
        // 1.先去准备好学生的数据
        var datas = [{
            name: '魏璎珞',
            subject: 'JavaScript',
            score: 100
        }, {
            name: '弘历',
            subject: 'JavaScript',
            score: 98
        }, {
            name: '傅恒',
            subject: 'JavaScript',
            score: 99
        }, {
            name: '明玉',
            subject: 'JavaScript',
            score: 88
        }, {
            name: '大猪蹄子',
            subject: 'JavaScript',
            score: 0
        }];
        // 2. 往tbody 里面创建行，有几个人（通过数组的长度）我们就可以创建几行
        // 获取元素
        var tbody = document.querySelector('tbody');
        // 通过for循环 往tbody 里面创建行，有几个人（通过数组的长度）我们就可以创建几行
        for(var i = 0; i < datas.length; i++){ // 外面的for循环管 tr
            // 1. 创建 tr行 创建元素
            var tr = document.createElement('tr');
            // 添加 tr行 添加元素
            tbody.appendChild(tr);
            // 2. 行里面创建单元格(跟数据有关系的3个单元格) td 单元格的数量取决于每个对象里面的属性个数 通过 for in循环遍历对象 datas[i]
            for(var k in datas[i]){ // 里面的for循环管列 td
                // 创建单元格
                var td = document.createElement('td');
                /* for(var k in obj){
                k 得到的是属性名
                obj[k] 得到的是属性值
                } */
                // 把对象里面的属性值 datas[i][k] 给 td
                // console.log(datas[i][k]);
                td.innerHTML = datas[i][k];
                tr.appendChild(td);
            }
            // 3. 创建有删除 2个字的单元格
            // 创建td 单元格 创建元素
            var td =  document.createElement('td');
            // 给创建的td 单元格 元素赋值
            td.innerHTML = '<a href="javascript:;">删除</a>';
            // 添加 td 单元格 添加元素
            tr.appendChild(td);
        }
        // 4. 删除操作 开始
        // 获取元素
        var as = document.querySelectorAll('a');
        // 通过for循环注册事件
        for(var i = 0; i < as.length; i++){
            as[i].onclick = function(){
                // 点击a 删除 当前a 所在的行(链接的爸爸的爸爸) 我们要删除行 所以要删除tr a链接在单元格(td) 单元格又在行(tr) node.removeChild(child)
                tbody.removeChild(this.parentNode.parentNode);
            }
        }
    </script>
</body>
</html>